package cn.itcast.zt.extend;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.stereotype.Component;

/**
 * @author zhangtian105
 * @ClassName EightBeanFactoryAware.java
 * @projectName SpringBoot2.x
 * @Description
 * 这个类只有一个触发点，发生在bean的实例化之后，注入属性之前，也就是Setter之前
 * 这个类的扩展点方法为setBeanFactory，可以拿到BeanFactory这个属性
 *
 * 使用场景为:
 *  你可以在bean实例化之后，但还未初始化之前，拿到 BeanFactory，在这个时候，可以对每个bean作特殊化的定制
 *  也或者可以把BeanFactory拿到进行缓存，日后使用
 * @createTime 2020年11月10日 16:46:00
 */
@Component
public class _8BeanFactoryAware implements BeanFactoryAware {
    @Override
    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
        System.out.println("【BeanFactoryAware.setBeanFactory】org.springframework.beans.factory.BeanFactoryAware......");
    }
}
